#include <stdio.h>
#include <string.h>

struct Test{
	int a;
	char b;
	short c;
};

int main(int argc, const char *argv[])
{
	struct Test t1;
	//memset(t1, 0, sizeof(t1)); // 错误的写法
	memset(&t1, 0, sizeof(t1)); // 正确的写法

	struct Test t2;
	struct Test *p1 = &t2;
	memset(p1, 0, sizeof(struct Test)); // 正确的写法
	memset(p1, 0, sizeof(p1)); // 错误的写法
	memset(&p1, 0, sizeof(struct Test)); // 错误的写法
	memset(&p1, 0, sizeof(p1)); // 错误的写法

	struct Test *p2 = (struct Test *)malloc(sizeof(struct Test));
	memset(p2, 0, sizeof(struct Test));

	return 0;
}
